//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
/**

THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.

Module Name:  
    rneutil.h

Abstract:  
	This module defines the primitive functions to control 
	

Functions:

    
--*/
#ifndef __RNEUTIL_H_
#define __RNEUTIL_H_
typedef struct {
	PBYTE pBufferHead;
	WORD wBufferSize;// have to dword aligh buffer.
	WORD wQEmpty;
	WORD wQUsed;
} BufferDescript;

BOOL InitBuffer(BufferDescript * pDesc, PVOID pBuffer,WORD wBLength);
WORD AvaiableBufferSize ( BufferDescript * pBDescr );
PVOID AllocBuffer (BufferDescript * pBDescr, WORD wLength) ;
BOOL  FreeBuffer(BufferDescript * pBDescr, PVOID pPtr) ;
BOOL GetFirstUsedBuffer(BufferDescript * pBDescr, PVOID *ppPtr,PWORD pwLength);

#endif